Skip to content

[DO NOT MERGE] test: Scalpel shadow — kafka-version 4.3.1→4.3.0#24272

Open
gnodet wants to merge 9 commits into
apache:mainfrom
gnodet:test-scalpel-kafka
Open

[DO NOT MERGE] test: Scalpel shadow — kafka-version 4.3.1→4.3.0#24272
gnodet wants to merge 9 commits into
apache:mainfrom
gnodet:test-scalpel-kafka

Conversation

@gnodet

@gnodet gnodet commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Scalpel shadow comparison validation — kafka-version

Temporary PR to validate PR #22524's Scalpel shadow comparison with a narrow managed dependency change.

Change: kafka-version 4.3.1 → 4.3.0 in parent/pom.xml

Expected result:

  • Grep: 0 modules (kafka is consumed via <dependencyManagement>, not ${kafka-version} in child POMs)
  • Scalpel: camel-kafka + camel-kafka-azure-rebalance-listener (direct dependents of the kafka managed dependency)

This PR should be closed without merging once the shadow comparison is validated.

Claude Code on behalf of @gnodet

gnodet and others added 9 commits June 25, 2026 04:42
Add a shadow comparison section to CI PR comments showing what Scalpel's
skip-tests mode would have tested, without affecting actual test execution.
This validates Scalpel's module detection across many PRs before switching
to Scalpel-driven test execution.

Changes:
- incremental-build.sh: switch from GitHub API diff to local git merge-base,
  configure Scalpel with skipTestsForDownstreamModules and fetchBaseBranch=false,
  add writeScalpelComparison() for collapsible PR comment section
- pr-build-main.yml / sonar-build.yml: add base branch fetch step for
  Scalpel's merge-base detection in shallow CI clones
- CI-ARCHITECTURE.md: document shadow comparison approach and configuration
The checkout action was accidentally downgraded from v7.0.0 to v6.0.2,
and persist-credentials: false was dropped from sonar-build.yml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ION_LIST

Restore fetchDiff() to use the GitHub API (unchanged from main) instead
of local git merge-base. The grep-based script has no dependency on local
git history — only Scalpel needs it. This eliminates regression risk for
the existing incremental build path.

Also derive skip_downstream from EXCLUSION_LIST via sed instead of
hardcoding a duplicate list that could silently diverge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When Scalpel fails (mvn validate error, missing report due to shallow
clone depth, or full-build trigger), surface the reason in the PR
comment's shadow comparison section instead of silently omitting it.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scalpel 0.3.5 still includes ~600 uncategorized parent-inherited modules
in affectedModules (scalpel#39, regression from apache#30 fix). Filter jq
queries to only DIRECT and DOWNSTREAM categories, and compute the
summary count from the breakdown rather than the inflated total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes inflated affectedModules count — parent-inherited modules that
don't use the changed dependency are no longer included (scalpel#39).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes inflated affectedModules count where parent POM property changes
(e.g. kafka-version) were reported as affecting all ~670 modules.
Also fixes skipTestsForDownstreamModules not taking effect.

See maveniverse/scalpel#39

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Validates Scalpel shadow comparison for a narrow managed dependency change.
Excludes .mvn/** from Scalpel diff (this PR inherits .mvn/extensions.xml changes).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

🌟 Thank you for your contribution to the Apache Camel project! 🌟
🤖 CI automation will test this PR automatically.

🐫 Apache Camel Committers, please review the following items:

  • First-time contributors require MANUAL approval for the GitHub Actions to run
  • You can use the command /component-test (camel-)component-name1 (camel-)component-name2.. to request a test from the test bot although they are normally detected and executed by CI.
  • You can label PRs using skip-tests and test-dependents to fine-tune the checks executed by this PR.
  • Build and test logs are available in the summary page. Only Apache Camel committers have access to the summary.

⚠️ Be careful when sharing logs. Review their contents before sharing them publicly.

@github-actions

Copy link
Copy Markdown
Contributor

🧪 CI tested the following changed modules:

  • parent

POM dependency changes: targeted tests included

Changed properties: kafka-version

Modules affected by dependency changes (45)
  • :apache-camel
  • :camel-allcomponents
  • :camel-catalog
  • :camel-catalog-console
  • :camel-catalog-lucene
  • :camel-catalog-maven
  • :camel-catalog-suggest
  • :camel-componentdsl
  • :camel-csimple-maven-plugin
  • :camel-debezium-common
  • :camel-debezium-db2
  • :camel-debezium-mongodb
  • :camel-debezium-mysql
  • :camel-debezium-oracle
  • :camel-debezium-postgres
  • :camel-debezium-sqlserver
  • :camel-endpointdsl
  • :camel-endpointdsl-support
  • :camel-ibm-secrets-manager
  • :camel-itest
  • :camel-jbang-core
  • :camel-jbang-it
  • :camel-jbang-main
  • :camel-jbang-mcp
  • :camel-jbang-plugin-edit
  • :camel-jbang-plugin-generate
  • :camel-jbang-plugin-kubernetes
  • :camel-jbang-plugin-route-parser
  • :camel-jbang-plugin-test
  • :camel-jbang-plugin-tui
  • :camel-jbang-plugin-validate
  • :camel-kafka
  • :camel-kamelet-main
  • :camel-launcher
  • :camel-launcher-container
  • :camel-report-maven-plugin
  • :camel-route-parser
  • :camel-yaml-dsl
  • :camel-yaml-dsl-deserializers
  • :camel-yaml-dsl-maven-plugin
  • :camel-yaml-dsl-validator
  • :camel-yaml-dsl-validator-maven-plugin
  • :coverage
  • :docs
  • :dummy-component
🔬 Scalpel shadow comparison (skip-tests mode)

Scalpel skip-tests mode would test 16 modules (3 direct + 13 downstream)

29 downstream module(s) would have tests skipped (generated code, meta-modules)

Modules Scalpel would test (16)
  • camel-debezium-common
  • camel-debezium-db2
  • camel-debezium-mongodb
  • camel-debezium-mysql
  • camel-debezium-oracle
  • camel-debezium-postgres
  • camel-debezium-sqlserver
  • camel-ibm-secrets-manager
  • camel-jbang-mcp
  • camel-jbang-plugin-route-parser
  • camel-jbang-plugin-tui
  • camel-jbang-plugin-validate
  • camel-kafka
  • camel-launcher-container
  • camel-yaml-dsl-validator
  • camel-yaml-dsl-validator-maven-plugin
Modules with tests skipped (29)
  • apache-camel
  • camel-allcomponents
  • camel-catalog
  • camel-catalog-console
  • camel-catalog-lucene
  • camel-catalog-maven
  • camel-catalog-suggest
  • camel-componentdsl
  • camel-csimple-maven-plugin
  • camel-endpointdsl
  • camel-endpointdsl-support
  • camel-itest
  • camel-jbang-core
  • camel-jbang-it
  • camel-jbang-main
  • camel-jbang-plugin-edit
  • camel-jbang-plugin-generate
  • camel-jbang-plugin-kubernetes
  • camel-jbang-plugin-test
  • camel-kamelet-main
  • camel-launcher
  • camel-report-maven-plugin
  • camel-route-parser
  • camel-yaml-dsl
  • camel-yaml-dsl-deserializers
  • camel-yaml-dsl-maven-plugin
  • coverage
  • docs
  • dummy-component

ℹ️ Shadow mode — Scalpel observes but does not affect test execution. Learn more

All tested modules (47 modules)
  • Camel :: All Components Sync point
  • Camel :: Assembly
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated)
  • Camel :: Catalog :: CSimple Maven Plugin (deprecated) SUCCESS
  • Camel :: Catalog :: Camel Catalog
  • Camel :: Catalog :: Camel Report Maven Plugin
  • Camel :: Catalog :: Camel Route Parser
  • Camel :: Catalog :: Console
  • Camel :: Catalog :: Dummy Component
  • Camel :: Catalog :: Lucene (deprecated)
  • Camel :: Catalog :: Maven
  • Camel :: Catalog :: Suggest
  • Camel :: Component DSL
  • Camel :: Coverage
  • Camel :: Debezium :: Common
  • Camel :: Debezium :: DB2
  • Camel :: Debezium :: MongoDB
  • Camel :: Debezium :: MySQL
  • Camel :: Debezium :: Oracle
  • Camel :: Debezium :: PostgreSQL
  • Camel :: Debezium :: SQL Server
  • Camel :: Docs
  • Camel :: Endpoint DSL
  • Camel :: Endpoint DSL :: Support
  • Camel :: IBM :: Secrets Manager
  • Camel :: Integration Tests
  • Camel :: JBang :: Core
  • Camel :: JBang :: Integration tests
  • Camel :: JBang :: MCP
  • Camel :: JBang :: Main
  • Camel :: JBang :: Plugin :: Edit
  • Camel :: JBang :: Plugin :: Generate
  • Camel :: JBang :: Plugin :: Kubernetes
  • Camel :: JBang :: Plugin :: Route Parser
  • Camel :: JBang :: Plugin :: TUI
  • Camel :: JBang :: Plugin :: Testing
  • Camel :: JBang :: Plugin :: Validate
  • Camel :: Kafka
  • Camel :: Kamelet Main
  • Camel :: Launcher
  • Camel :: Launcher :: Container
  • Camel :: Parent
  • Camel :: YAML DSL
  • Camel :: YAML DSL :: Deserializers
  • Camel :: YAML DSL :: Maven Plugins
  • Camel :: YAML DSL :: Validator
  • Camel :: YAML DSL :: Validator Maven Plugin

⚙️ View full build and test results

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant